package com.lonely.fx;

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.PasswordField;
import javafx.scene.control.Tooltip;
import javafx.stage.Stage;

/**
 * @author 独孤小标
 * @description 密码框设置
 * @since 2022/6/27 10:01 下午
 */
public class PasswordFieldSettingMain extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    /**
     *
     */
    @Override
    public void start(Stage primaryStage) throws Exception {

        //创建密码框
        PasswordField passwordField = new PasswordField();
        //passwordField.setText("aaa");

        //因组件里只有一个密码框，则这里需要关闭自动锁定光标
        passwordField.setFocusTraversable(false);
        passwordField.setPromptText("请输入密码：");

        //设置密码框是否可以编辑 默认true， false：不能编辑
        //passwordField.setEditable(false);

        //是否禁用 默认false：不禁用 ，true：禁用，变灰
        //passwordField.setDisable(true);

        //设置提示
        passwordField.setTooltip(new Tooltip("这是密码框"));

        //文本变动事件，案例：设置密码长度最大为6位
        passwordField.textProperty().addListener((observable, oldValue, newValue) -> {
            if(newValue.length() > 6){
                passwordField.setText(oldValue);
            }
        });


        Group group = new Group();
        group.getChildren().add(passwordField);
        Scene scene = new Scene(group);
        primaryStage.setScene(scene);
        primaryStage.setWidth(500);
        primaryStage.setHeight(400);
        primaryStage.show();

    }
}
